<h2>DESCRIPTION</h2>

<em><b>r.mask</b></em> - Facilitates creation of a raster "MASK" map to
control raster operations.

<p>
The MASK is only applied when <em>reading</em> an existing GRASS raster map,
for example when used in a module as an input map.

The MASK will block out certain areas of a raster map from analysis and/or
display, by "hiding" them from sight of other GRASS modules. Data falling
within the boundaries of the MASK can be modified and operated upon by other
GRASS raster modules; data falling outside the MASK is treated as if it were NULL.
<p>
Because the MASK is actually only a reclass map named "MASK", it can be
copied, renamed, removed, and used in analyses, just like other GRASS
raster map layers.  The user should be aware that a MASK remains in
place until a user renames it to something other than "MASK", or removes
it using "<tt>r.mask -r</tt>" or <em>g.remove</em>.
<p>
Grid cells in the MASK map containing <tt>0</tt> or <tt>NULL</tt>
will replace data with NULL, while cells containing other values will allow
data to pass through unaltered.
<p>
To restore raster operations to normal (i.e., all cells of the current region),
remove the MASK file by setting the <b>-r</b> remove MASK flag. In this case, a
dummy value must also be given for the input parameter.
A MASK also can be removed by using <em>g.remove</em>
or by renaming it to any other name with <em>g.rename</em>.


<h2>NOTES</h2>

The above method for specifying a "mask" may seem
counterintuitive.  Areas inside the MASK are not hidden;
areas outside the MASK will be ignored until the MASK file
is removed.
<p>
The MASK is read as an integer map. If MASK is actually a
floating-point map, the values will be converted to integers using the
map's quantisation rules (this defaults to round-to-nearest, but can
be changed with r.quant).
<p>
<em>r.mask</em> uses <em>r.reclass</em> to create a reclassification of an
existing raster map and name it <tt>MASK</tt>. A reclass map takes up less space, but
is affected by any changes to the underlying map from which it was created.
The user can select category values from the input raster to use in the MASK
with the <em>maskcats</em> parameter; if <em>r.mask</em> is run from the
command line, the category values listed in <em>maskcats</em> must be quoted
(see example below).
<p>
Somewhat similar program functions to those performed by
<em>r.mask</em> can be done using <em>r.mapcalc</em>, 
<em>g.region</em>, and other commands.


<h2>EXAMPLES</h2>

The examples are based on the North Carolina sample dataset.
<p>
Create a raster mask, for contraining the calculation of
univariate statistics of the elevation values for "lakes":
<div class="code"><pre>
# set computation region to lakes raster map
g.region raster=lakes -p
# use lakes as MASK
r.mask raster=lakes
# get statistics for elevation pixels of lakes:
r.univar elevation
</pre></div>

Remove the raster mask ("MASK" map) with the -r flag:
<div class="code"><pre>
r.mask -r
</pre></div>

Creating a mask from selected categories in the North Carolina
'geology_30m' raster map:
<div class="code"><pre>
g.region raster=geology_30m -p
r.category geology_30m
d.mon wx0
d.rast geology_30m
r.mask raster=geology_30m maskcats="217 thru 720"
d.mon wx0
d.rast geology_30m
</pre></div>


<h2>SEE ALSO</h2>
<em>
<a href="g.region.html">g.region</a>,
<a href="r.mapcalc.html">r.mapcalc</a>,
<a href="r.reclass.html">r.reclass</a>,
<a href="g.remove.html">g.remove</a>,
<a href="g.rename.html">g.rename</a>
</em>


<h2>AUTHOR</h2>

Michael Barton, Arizona State University

<!--
<p>
<i>Last changed: $Date$</i>
-->
